# coding utf-8

def fox_say(func):
    def inner():
        return "狐狸：“" + func() + "”"

    return inner


def fox_tail(func):
    def inner():
        return func() + "，咪咕~"

    return inner


@fox_say
@fox_tail
def content():
    return "人生苦短，我用Python"


fox_result = content()
print(fox_result)


class Check(object):
    def __init__(self, fn):
        # 初始化操作在此完成
        self.__fn = fn

    # 实现__call__方法，表示对象是一个可调用对象，可以像调用函数一样进行调用。
    def __call__(self, *args, **kwargs):
        # 添加装饰功能
        print("请先登陆...")
        self.__fn()


@Check
def comment():
    print("发表评论")


comment()
print('===' * 20)


class Check(object):
    def __init__(self, extension):
        # 初始化操作在此完成
        self.__extension = extension

    # 实现__call__方法，表示对象是一个可调用对象，可以像调用函数一样进行调用。
    def __call__(self, fn):
        # 添加装饰功能
        def check(_file_name):
            if _file_name.endswith(self.__extension):
                result = fn(_file_name)
            else:
                _file_name = _file_name + self.__extension
                result = fn(_file_name)
            return result

        return check


@Check('.zip')
def load_file(_file):
    print('文件读取中...')
    print('读取到文件：', _file)


load_file('mysql从删库到跑路')
print('===' * 10)
load_file('java架构师进阶课程.zip')
